<?php
/**
 * @author		João Batista Neto
 * @brief		Classes e interfaces utilitárias
 * @package		rpo.util
 */

require_once 'rpo/base/IObject.php';

/**
 * @ingroup		MapReduce
 * @brief		Efetua a redução dos itens
 * @interface	ReduceStep
 */
interface ReduceStep extends IObject {
	/**
	 * @brief	Executa a redução
	 * @param	$mapReduce MapReduce Objeto que está fazendo o mapeamento
	 * @param	$key mixed Chave que será reduzida
	 * @param	$values Iterator Valores mapeados para a chave
	 */
	public function reduce( MapReduce $mapReduce , $key , Iterator $values );
}